package LC;

import java.util.ArrayList;
import java.util.List;

public class LC54 {
    public static List<Integer> spiralOrder(int[][] matrix) {
        int left=0,right=matrix[0].length-1;//列
        int top=0,botoom=matrix.length-1;//行
        List<Integer> res=new ArrayList<>();
        if(matrix==null||matrix.length==0){
            return res;
        }
   while(left<=right&&top<=botoom){
       for(int cloumn=left;cloumn<=right;cloumn++){//从左到右打印每一行
           res.add(matrix[top][cloumn]);
       }
            top++;
       for(int row=top;row<=botoom;row++){
            res.add(matrix[row][right]);
       }
        right--;
       if(left<=right&&top<=botoom){//最后一行或者一列的时候，要结束，不能往回迭代
           for(int cloumn=right;cloumn>=left;cloumn--){
               res.add(matrix[botoom][cloumn]);
           }
           botoom--;
           for(int row=botoom;row>=top;row--){
               res.add(matrix[row][left]);
           }
           left++;
       }
   }
   return  res;
    }

    public static void main(String[] args) {
        int[][]test={{2,5},{8,4},{0,-1}};
        List<Integer> res=spiralOrder(test);
        System.out.println(res.toString());
    }
}
